function Sun() {
  this.x = 320;
  this.y = 50;
  this.radius = 40;
  this.color = "#F4E50D";
  this.rotation = 0;
  this.scale = 1;
}

Sun.prototype.draw = function( context ) {
  context.save();
  context.translate( this.x, this.y );
  context.rotate( this.rotation );
  context.scale( this.scale, this.scale );
  
  context.lineWidth = 3;
  context.fillStyle = this.color;
  context.strokeStyle = this.color;

  context.shadowBlur = 50;
  context.shadowOffsetX = 0;
  context.shadowOffsetY = 0;
  context.shadowColor = utils.colorToRGB( 0xFFFF00, 1 );

  context.beginPath();
  context.arc( 0, 0, this.radius, 0, ( Math.PI * 2 ), true );
  context.moveTo( 0, 60 );
  context.lineTo( 0, this.radius );
  context.moveTo( 0, -70 );
  context.lineTo( 0, this.radius );
  context.moveTo( -65, 0 );
  context.lineTo( -this.radius, 0 );
  context.moveTo( 80, 0 );
  context.lineTo( this.radius, 0 );
  var edgeCircle = this.radius / Math.sqrt( 2 );
  context.moveTo( 70, 70 );
  context.lineTo( edgeCircle, edgeCircle );
  context.moveTo( -57, -57 );
  context.lineTo( -edgeCircle, -edgeCircle );
  context.moveTo( -65, 65 );
  context.lineTo( -edgeCircle, edgeCircle );
  context.moveTo( 75, -75 );
  context.lineTo( edgeCircle, -edgeCircle );

  context.closePath();
  context.fill();
  context.stroke();
 
  var c1 = {x: 0, y: 0, radius: 0},
      c2 = {x: 0, y: 0, radius: this.radius},
      gradient = context.createRadialGradient( c1.x, c1.y, c1.radius, c2.x, c2.y, c2.radius );

  gradient.addColorStop( 0, "#FFFFFF" );
  gradient.addColorStop( 0.5, utils.colorToRGB( 0xFFFF00, 0 ) );

  context.fillStyle = gradient;
  context.fillRect( -30, -30, 60, 60 );

  context.restore();
};
